package com.itheima.socket.tcp.demo01;

import javax.net.ssl.SSLSocket;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * TCP通讯的服务端的代码实现
 */
public class ServerDemo01 {

    public static void main(String[] args) throws IOException {

        /**
         * 步骤：
         * 1. 创建ServerSocket对象，用于客户端连接
         * 2. 调用accept方法(监听客户端)从队列中获取一个连接，该方法是一个阻塞方法，如果队列中没有连接，一直等待
         * 3. 调用Socket对象的方法获取输入流对象
         * 4. 使用输入流对象读取数据
         * 5. 释放资源
         */
        // 创建ServerSocket对象，用于客户端连接
        ServerSocket serverSocket = new ServerSocket(8080) ;

        // 调用accept方法(监听客户端)从队列中获取一个连接，该方法是一个阻塞方法，如果队列中没有连接，一直等待
        // public Socket accept()
        System.out.println("获取连接开始了........................");
        Socket socket = serverSocket.accept();
        System.out.println("获取到了一个连接........................");

        // 调用Socket对象的方法获取输入流对象
        InputStream inputStream = socket.getInputStream();

        // 使用输入流对象读取数据
        byte[] bytes = new byte[1024] ;
        int read = inputStream.read(bytes);
        System.out.println(new String(bytes , 0 , read , "UTF-8"));

        // 释放资源
        socket.close();
        serverSocket.close();

    }

}
